package jackson.dictionary;

import enumate.Enumerable;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 用于翻译 controller 层返回对象时字典值
 */
// @Inherited
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Dict {

    /**
     * 属性名
     */
    String fieldName() default "";

    /**
     * 数据字典类型
     */
    @AliasFor("type")
    String value() default "";

    /**
     * 数据字典类型
     */
    @AliasFor("value")
    String type() default "";

    /**
     * 用枚举翻译 code 值
     */
    Class<? extends Enumerable> dictEnum() default Enumerable.class;
}